package memorandum;

/**
 * TODO 备忘录模式（Memento Pattern）保存一个对象的某个状态，以便在适当的时候恢复对象。备忘录模式属于行为型模式。
 * 意图：在不破坏封装性的前提下，捕获一个对象的内部状态，并在该对象之外保存这个状态。
 */
public class demo {
    public static void main(String[] args) {
        Originator originator = new Originator();
        CareTaker careTaker = new CareTaker();
        originator.setStatus("status1");
        originator.setStatus("status2");
        careTaker.add(originator.saveStatusToMemento());
        originator.setStatus("status3");
        careTaker.add(originator.saveStatusToMemento());
        originator.setStatus("status4");
        System.out.println("现在状态是"+originator.getStatus());
        originator.getMementoStatus(careTaker.get(0));
        System.out.println("first saved status is "+originator.getStatus());
        originator.getMementoStatus(careTaker.get(1));
        System.out.println("second saved status is "+originator.getStatus());
    }
}
